跳到主要内容

Node-RED 基础

本页介绍了 OV20i 摄像头系统中实现的 Node-RED,解释了帮助您创建强大检测工作流的关键概念和功能。

什么是 Node-RED?

Node-RED 是一种基于流程的编程工具,提供基于浏览器的编辑器,用于可视化连接硬件设备、API 和在线服务。最初由 IBM 开发,现已成为一个开源项目,提供低代码的自动化和数据处理方法。

OV20i 摄像头利用 Node-RED 作为其自动化平台,使您能够以最少的编码知识创建复杂的检测工作流。通过简单的拖放界面,您可以快速开发出原本需要大量编程专业知识的复杂逻辑。

Node-RED 的关键概念

流 (Flows)

流是您自动化流程的可视化表示。每个流由通过连线连接的节点组成,表示数据在系统中的流动方式。OV20i 摄像头使用流来处理检测结果并与外部系统通信。

节点 (Nodes)

节点是流的构建块,每个节点代表特定的功能或能力:

  • 输入节点 - 接收数据(例如,摄像头触发、HTTP 请求)
  • 处理节点 - 转换或分析数据(例如,分类逻辑)
  • 输出节点 - 向外部系统发送数据或触发动作(例如,PLC 通信)

消息 (Messages)

节点通过传递消息相互通信。在 OV20i 系统中,这些消息通常包含:

  • 检测结果
  • 被检测对象的元数据
  • 外部系统的命令
  • 触发信号

上下文存储 (Context Storage)

Node-RED 提供了一种存储信息的方法,可以在不同节点间共享,而无需依赖流中传递的消息。

特定上下文值的“作用域”决定了谁可以访问它:

作用域类型可见性使用场景
节点上下文仅对设置该值的节点可见存储节点特定的临时状态信息
流上下文对同一流(标签页)上的所有节点可见在同一流内节点间共享数据
全局上下文对所有流中的所有节点可见应用范围内的状态或配置

上下文存储的优点

  • 数据持久性 - 在消息流之间存储数据
  • 作用域灵活性 - 不同级别的数据共享
  • 状态管理 - 跨节点维护应用状态

部署按钮 (Deploy Button)

Node-RED 中的部署按钮允许您将配置应用并推送到运行时环境。

部署选项:

  • 完全部署 - 更新所有节点和流
  • 修改节点 - 仅更新已更改的节点
  • 修改流 - 仅更新包含已修改节点的流

导入与导出

Node-RED 允许您以 JSON 文件格式导出和导入流配置,实现:

  • 备份摄像头配置
  • 团队成员间共享流
  • 在不同摄像头间迁移配置

导出流程

  1. 打开摄像头的 Node-RED 编辑器
  2. 选择要导出的流
  3. 点击菜单按钮,选择“导出”
  4. 选择 JSON 格式

导入流程

  1. 打开摄像头的 Node-RED 编辑器
  2. 点击菜单按钮,选择“导入”
  3. 粘贴 JSON 数据或上传 JSON 文件
  4. 点击“导入”以集成配置
  5. 部署以应用新流

调试 (Debug)

目的与功能

调试节点在 Node-RED 编辑器的调试侧栏显示消息,便于开发和排查检测流程。

主要功能

  • 调试侧栏中的结构化消息视图
  • 消息时间和来源的详细信息
  • 定位工作区中源节点的能力
  • 启用/禁用调试输出的切换功能

仪表盘功能 (Dashboard Capabilities)

Node-RED 仪表盘提供基于网页的界面,通过可定制的 UI 监控和控制您的摄像头系统。

关键组件

  • 布局管理器 - 组织 UI 组件
  • UI 节点 - 添加特定界面元素
  • 主题自定义 - 个性化外观

常用 UI 元素

  • 按钮 - 触发如配方切换等操作
  • 图表 - 可视化检测指标随时间变化
  • 仪表 - 监控范围内的数值
  • 文本显示 - 显示当前摄像头状态
  • 滑块 - 实时调整参数

创建仪表盘的步骤

  1. 向流中添加 UI 节点 - 从调色板拖放 UI 节点到流中,定义仪表盘中包含的数据和控件
  2. 配置 UI 节点 - 配置每个 UI 节点的属性,如标签、范围和数据源
  3. 排列组件 - 使用布局管理器安排仪表盘上的 UI 组件,创建逻辑且用户友好的布局
  4. 部署并访问仪表盘 - 部署流并通过访问相应 URL(通常为 http://{hostname}/ui)进入仪表盘

在 OV20i 中使用 Node-RED

访问编辑器

您可以通过 OV20i 摄像头的 UI 访问 Node-RED 编辑器。

默认流

OV20i 配备了预配置的默认流,处理基本检测操作。它作为自定义配置的起点,并展示摄像头集成的最佳实践。

OV20i 自定义节点

摄像头扩展了 Node-RED,提供专为视觉应用设计的节点:

  • 分类逻辑 - 处理分类结果
  • PLC 格式 - 格式化工业控制器数据
  • 最终合格/不合格 - 判定检测结果

集成能力

OV20i 中的 Node-RED 环境支持与多种工业系统集成:

  • 通过 Ethernet/IP、Profinet 或 Modbus 与 PLC 通信
  • 用于物联网应用的 MQTT
  • 用于 Web 服务的 HTTP/REST
  • 用于数据记录的数据库系统
  • 用于操作员控制的 HMI 界面

最佳实践

流组织

  • 按功能保持流的有序
  • 使用注释记录复杂逻辑
  • 清晰命名节点以表明其用途
  • 对重复模式使用子流

性能考虑

  • 生产环境中尽量减少调试节点数量
  • 考虑高频触发的影响
  • 高效使用上下文变量
  • 部署前充分测试

备份策略

  • 定期导出并保存流
  • 记录配置变更
  • 团队环境中考虑版本控制
  • 生产使用前测试恢复的流

🔗 参见